{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "## _*LiH dissociation curve using NumPyMinimumEigensolver*_\n",
    "\n",
    "This notebook demonstrates using Qiskit Chemistry to plot graphs of the ground state energy and dipole moments of a Lithium Hydride (LiH) molecule over a range of inter-atomic distances.\n",
    "\n",
    "This notebook has been written to use the PYSCF chemistry driver. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pylab\n",
    "from qiskit import BasicAer\n",
    "from qiskit.aqua import QuantumInstance\n",
    "from qiskit.aqua.algorithms import NumPyMinimumEigensolver, VQE\n",
    "from qiskit.aqua.components.optimizers import COBYLA\n",
    "from qiskit.circuit.library import TwoLocal\n",
    "from qiskit.chemistry.drivers import PySCFDriver\n",
    "from qiskit.chemistry.core import Hamiltonian, QubitMappingType"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Note: In order to allow this to run reasonably quickly it takes advantage\n",
    "#       of the ability to freeze core orbitals and remove unoccupied virtual\n",
    "#       orbitals to reduce the size of the problem.\n",
    "\n",
    "# tested molecular, LiH\n",
    "molecule = 'Li .0 .0 -{0}; H .0 .0 {0}'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# choose 'NumPyMinimumEigensolver' or 'VQE' for experiments\n",
    "algorithm = 'NumPyMinimumEigensolver'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Processing step 22 --- complete\n",
      "Distances:  [0.6  0.7  0.8  0.9  1.   1.1  1.2  1.3  1.4  1.5  1.6  1.7  1.8  1.9\n",
      " 2.   2.25 2.5  2.75 3.   3.25 3.5  3.75 4.  ]\n",
      "HF Energies: [-7.29954105 -7.48594487 -7.61577016 -7.70575334 -7.76736214 -7.80874318\n",
      " -7.83561583 -7.85195386 -7.86053866 -7.86335762 -7.86186477 -7.85714496\n",
      " -7.8500187  -7.84111204 -7.83090558 -7.80193896 -7.77087367 -7.74000074\n",
      " -7.7108299  -7.68437642 -7.6612016  -7.64145387 -7.62497563]\n",
      "Energies: [-7.31334583 -7.50092209 -7.63097825 -7.72081241 -7.7822424  -7.82359928\n",
      " -7.85069838 -7.86756329 -7.87700149 -7.88101572 -7.88107204 -7.87826817\n",
      " -7.87344029 -7.86723396 -7.86015321 -7.84104271 -7.82307664 -7.8086124\n",
      " -7.79836343 -7.79175325 -7.78771697 -7.78531972 -7.78391847]\n",
      "Dipole moments: [5.3479565  5.05436846 4.89154649 4.80824206 4.76423166 4.73775921\n",
      " 4.71893511 4.70394304 4.69125691 4.67959192 4.66694467 4.65022445\n",
      " 4.62517401 4.5864183  4.52758314 4.24518851 3.69244462 2.8795465\n",
      " 1.99991673 1.27228084 0.76878114 0.45190607 0.26134836]\n"
     ]
    }
   ],
   "source": [
    "# configure distance between two atoms\n",
    "pts  = [x * 0.1  for x in range(6, 20)]\n",
    "pts += [x * 0.25 for x in range(8, 16)]\n",
    "pts += [4.0]\n",
    "distances   = np.empty(len(pts))\n",
    "hf_energies = np.empty(len(pts))\n",
    "energies    = np.empty(len(pts))\n",
    "dipoles     = np.empty(len(pts))\n",
    "\n",
    "print('Processing step __', end='')\n",
    "for i, d in enumerate(pts):\n",
    "    print('\\b\\b{:2d}'.format(i), end='', flush=True) \n",
    "    driver = PySCFDriver(molecule.format(d/2), basis='sto3g')\n",
    "    qmolecule = driver.run()\n",
    "    operator =  Hamiltonian(qubit_mapping=QubitMappingType.PARITY, two_qubit_reduction=True,\n",
    "                            freeze_core=True, orbital_reduction=[-3, -2])\n",
    "    qubit_op, aux_ops = operator.run(qmolecule)\n",
    "    if algorithm == 'NumPyMinimumEigensolver':\n",
    "        result = NumPyMinimumEigensolver(qubit_op, aux_operators=aux_ops).run()\n",
    "    else:\n",
    "        optimizer = COBYLA(maxiter=20000)\n",
    "        var_form = TwoLocal(qubit_op.num_qubits, ['ry', 'rz'], 'cz', reps=10)\n",
    "        algo = VQE(qubit_op, var_form, optimizer, aux_operators=aux_ops)\n",
    "        result = algo.run(QuantumInstance(BasicAer.get_backend('statevector_simulator')))\n",
    "    \n",
    "    result = operator.process_algorithm_result(result)\n",
    "    distances[i] = d\n",
    "    hf_energies[i] = result.hartree_fock_energy\n",
    "    energies[i] = result.energy\n",
    "    dipoles[i]  = result.total_dipole_moment / 0.393430307\n",
    "print(' --- complete')\n",
    "\n",
    "print('Distances: ', distances)\n",
    "print('HF Energies:', hf_energies)\n",
    "print('Energies:', energies)\n",
    "print('Dipole moments:', dipoles)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "pylab.plot(distances, hf_energies, label='HF')\n",
    "pylab.plot(distances, energies, label='Computed')\n",
    "pylab.xlabel('Interatomic distance')\n",
    "pylab.ylabel('Energy')\n",
    "pylab.title('LiH Ground State Energy')\n",
    "pylab.legend(loc='upper right');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "pylab.plot(distances, dipoles)\n",
    "pylab.xlabel('Interatomic distance')\n",
    "pylab.ylabel('Moment debye')\n",
    "pylab.title('LiH Dipole Moment');"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
